/**
 * 系统配置表初始化脚本
 * 功能：
 * 1. 同步数据库表结构
 * 2. 插入初始token配置数据
 */

const systemConfigModel = require('../models/systemConfig');

async function initSystemConfig() {
    try {
        console.log('开始初始化系统配置表...');

        // 1. 同步表结构
        await systemConfigModel.sync({ alter: true });
        console.log('✓ 系统配置表结构同步成功');

        // 2. 检查是否已有数据
        const existingCount = await systemConfigModel.count();

        if (existingCount > 0) {
            console.log(`⚠️  系统配置表已有 ${existingCount} 条数据，跳过初始化`);
            return;
        }

        // 3. 插入初始数据
        const now = new Date().getTime();
        const thirtyDaysLater = now + (30 * 24 * 60 * 60 * 1000); // 30天后

        const initData = [
            {
                configKey: 'baidu_token',
                configValue: '121.f6f728a6406c0f65f782f4914c0f49d8.Y5O4dV9kegB4WZenpoZoh6MxADDwlHA1PX22O8-.lXt72w',
                configName: '百度网盘Token',
                expiresTime: thirtyDaysLater,
                remark: '用于百度网盘API调用，有效期30天'
            },
            {
                configKey: 'authorization',
                configValue: '27dc0fce-498a-41f3-aa05-b0b55c2b40e8',
                configName: '全局Authorization',
                expiresTime: thirtyDaysLater,
                remark: '后台管理接口验证token，有效期30天'
            }
        ];

        await systemConfigModel.bulkCreate(initData);
        console.log('✓ 初始化配置数据插入成功');
        console.log(`  - 百度网盘Token (有效期至: ${new Date(thirtyDaysLater).toLocaleString('zh-CN')})`);
        console.log(`  - 全局Authorization (有效期至: ${new Date(thirtyDaysLater).toLocaleString('zh-CN')})`);

        console.log('\n✅ 系统配置表初始化完成！');

        // 退出进程
        process.exit(0);

    } catch (error) {
        console.error('❌ 初始化失败:', error.message);
        console.error(error);
        process.exit(1);
    }
}

// 执行初始化
initSystemConfig();
